import axios from 'axios'
import qs from 'qs'
import loacl from '../local.js'

// 设置公共路径,设置超时报错
axios.defaults.baseURL = 'http://172.16.20.167:5000'
axios.defaults.timeout = 5000

// 设置拦截器
// 请求拦截器
axios.interceptors.request.use(config => {
  const token = loacl.get('token')
  if (token) config.headers.Authorization = token
  return config
})
// 响应拦截器
axios.interceptors.response.use(res => {
  return res.data
})

function get(url, params) {
  // 使用promise进行axios请求成功或错误判断
  return new Promise((resolve, reject) => {
    axios
      .get(url, { params })
      .then(data => {
        // 成功就传值
        resolve(data)
      })
      .catch(err => {
        // 失败就处理错误
        console.log(err)
      })
  })
}

function post(url, query) {
  // 使用promise进行axios请求成功或错误判断
  return new Promise((resolve, reject) => {
    // 因为post只能接受k=v&k=v所以利用qs模块stringify将对象更改为这个格式
    axios
      .post(url, qs.stringify(query))
      .then(data => {
        // 成功就传值
        resolve(data)
      })
      .catch(err => {
        // 失败就处理错误
        console.log(err)
      })
  })
}

export default {
  get,
  post
}
